//==========================================================================
// Copyright (c) 2000-2008,  Elastos, Inc.  All Rights Reserved.
//==========================================================================
/*++
"This software program is available to you under a choice of one of two 
licenses.  You may choose to be licensed under either the GNU General Public 
License (GPL) Version 2, June 1991, available at 
http://www.fsf.org/copyleft/gpl.html, or the BSD License, the text of
which follows:

Copyright (c) 1996-2005, Intel Corporation. All rights reserved.

Redistribution and use in source and binary forms, with or without 
modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this 
list of conditions and the following disclaimer. 

Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or 
other materials provided with the distribution. 

Neither the name of the Intel Corporation ("Intel") nor the names of its 
contributors may be used to endorse or promote products derived from this
software without specific prior written permission. 

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
--*/

#ifndef __XLLP_MFP_PROC_H__
#define __XLLP_MFP_PROC_H__
#include "xllp_defs.h"

///////////////////////////////////////////////
//
//  Processor-specific MFP constants start here.
//

/************************************************************************/

/**
  MFPR array Definition and other general definitions
**/

#define XLLP_MFP_PIN_MIN_OFFSET         0x0124      // Offset of lowest usable MFPR
#define XLLP_MFP_PIN_MAX_OFFSET         0x0688      // Offset of highest usable MFPR
#define XLLP_MFP_PIN_EOLIST_MARKER      0xFFFFFFFF  // Marker val for end of pin lists

// Includes reserved addresses
#define XLLP_MFP_MAX_INDEX (XLLP_MFP_PIN_MAX_OFFSET/ sizeof (XLLP_VUINT32_T))

typedef  XLLP_VUINT32_T XLLP_MFP_REG_ARRAY_T [XLLP_MFP_MAX_INDEX+1];

typedef XLLP_INT8_T XLLP_MFP_RM_DB_ID_T, *P_XLLP_MFP_RM_DB_ID_T;

#define XLLP_MFP_RM_DB_SIZE  ((XLLP_MFP_MAX_INDEX+1)*sizeof(XLLP_MFP_RM_DB_ID_T))

typedef enum
{
    XLLP_MFP_ALT_FN_0        = 0x0,
    XLLP_MFP_ALT_FN_1        = 0x1,
    XLLP_MFP_ALT_FN_2        = 0x2,
    XLLP_MFP_ALT_FN_3        = 0x3,
    XLLP_MFP_ALT_FN_4        = 0x4,
    XLLP_MFP_ALT_FN_5        = 0x5,
    XLLP_MFP_ALT_FN_6        = 0x6,
    XLLP_MFP_ALT_FN_7        = 0x7,
    XLLP_MFP_ALT_FN_MAX      = 0x7,
    XLLP_MFP_ALT_FN_MASK     = 0x7,
    XLLP_MFP_ALT_FN_NUM_BITS = 0x3

} XLLP_MFP_ALT_FN_T, *P_XLLP_MFP_ALT_FN_T;

typedef enum
{
    XLLP_MFP_PULL_NEITHER = 0,
    XLLP_MFP_PULL_DOWN    = 1,
    XLLP_MFP_PULL_UP      = 2,
    XLLP_MFP_PULL_MAX     = 2

} XLLP_MFP_CONFIGURE_PULL_T, *P_XLLP_MFP_CONFIGURE_PULL_T;

typedef enum
{
    XLLP_MFP_NEITHER_EDGE         = 0,
    XLLP_MFP_RISING_EDGE          = 1,
    XLLP_MFP_FALLING_EDGE         = 2,
    XLLP_MFP_RISING_FALLING_EDGES = 3,
    XLLP_MFP_EDGE_MAX             = 3

} XLLP_MFP_EDGE_T, *P_XLLP_MFP_EDGE_T;

typedef enum
{
   XLLP_MFP_DS_01X = 0,
   XLLP_MFP_DS_02X = 1,
   XLLP_MFP_DS_03X = 2,
   XLLP_MFP_DS_04X = 3,
   XLLP_MFP_DS_06X = 4,
   XLLP_MFP_DS_08X = 5,
   XLLP_MFP_DS_10X = 6,
   XLLP_MFP_DS_12X = 7,
   XLLP_MFP_DS_MAX = 7

} XLLP_MFP_DRIVE_STRENGTH_T, *P_XLLP_MFP_DRIVE_STRENGTH_T;

//
// Table that determines the low power modes outputs, with actual settings
//  used in parentheses for don't-care values.  Except for the float output,
//  the configured driven and pulled levels match.  So if there is a need
//  for non-LPM pulled output, the same configuration could probably be
//  used.
//
// Output value    sleep_oe_n  sleep_data  pullup_en   pulldown_en
//                  (bit 7)     (bit 8)     (bit 14d)   (bit 13d)
//
// Drive 0             0          0           0           X (1)
// Drive 1             0          1           X (1)       0
// Pull hi (1)         1          X(1)        1           0
// Pull lo (0)         1          X(0)        0           1
// Z (float)           1          X(0)        0           0
//

typedef enum
{
   XLLP_MFP_LPMO_DRIVE_LOW  =  (1u << 13),
   XLLP_MFP_LPMO_DRIVE_HIGH = ((1u << 8) | (1u << 14)),
   XLLP_MFP_LPMO_PULL_HIGH  = ((1u << 7) | (1u << 8) | (1u << 14)),
   XLLP_MFP_LPMO_PULL_LOW   = ((1u << 7) | (1u << 13)),
   XLLP_MFP_LPMO_FLOAT      =  (1u << 7),
   XLLP_MFP_LPMO_MASK       = ((1u << 7) | (1u << 8) | (1u << 13) | (1u << 14))

} XLLP_MFP_LPM_OUTPUT_T, *P_XLLP_MFP_LPM_OUTPUT_T;

// for early development.  Pull these if they are defined, otherwise define
// them with the base types.
#ifndef P_XLLP_CONTROL_T
typedef XLLP_CONTROL_T* P_XLLP_CONTROL_T;
#endif  // ndef P_XLLP_CONTROL_T

#ifndef P_XLLP_LEVEL_T
typedef XLLP_LEVEL_T* P_XLLP_LEVEL_T;
#endif  // ndef P_XLLP_LEVEL_T

/************************************************************************/
/////////////////////////////////////////////////
//
// Begin definitions of MFPR offset constants
//
// Notes:
//  - MFPR offsets are listed in numerical order of offset
//  - The address space is sparsely populated both intrinsically
//      and because some MFPRs are used only in special purpose
//      modes that do not apply to the general SW context
//  - The offset symbols generally have this syntax:
//     XLLP_MFP_PIN_[pin name as found in DM]_OFFSET
//

#define XLLP_MFP_PIN_GPIO0_OFFSET           0x0124
#define XLLP_MFP_PIN_GPIO1_OFFSET           0x0128
#define XLLP_MFP_PIN_GPIO2_OFFSET           0x012C
#define XLLP_MFP_PIN_GPIO3_OFFSET           0x0130
#define XLLP_MFP_PIN_GPIO4_OFFSET           0x0134
#define XLLP_MFP_PIN_nXCVREN_OFFSET         0x0138
#define XLLP_MFP_PIN_ND_CLE_OFFSET          0x0204
#define XLLP_MFP_PIN_DF_nADV1_ALE_OFFSET    0x0208
#define XLLP_MFP_PIN_DF_SCLK_S_OFFSET       0x020C
#define XLLP_MFP_PIN_DF_SCLK_E_OFFSET       0x0210
#define XLLP_MFP_PIN_nBE0_OFFSET            0x0214
#define XLLP_MFP_PIN_nBE1_OFFSET            0x0218
#define XLLP_MFP_PIN_DF_nADV2_ALE_OFFSET    0x021C
#define XLLP_MFP_PIN_DF_INT_RnB_OFFSET      0x0220
#define XLLP_MFP_PIN_DF_nCS0_OFFSET         0x0224
#define XLLP_MFP_PIN_DF_nCS1_OFFSET         0x0228
#define XLLP_MFP_PIN_DF_nWE_OFFSET          0x022C
#define XLLP_MFP_PIN_DF_nRE_nOE_OFFSET      0x0230
#define XLLP_MFP_PIN_nLUA_OFFSET            0x0234
#define XLLP_MFP_PIN_nLLA_OFFSET            0x0238
#define XLLP_MFP_PIN_DF_ADDR0_OFFSET        0x023C
#define XLLP_MFP_PIN_DF_ADDR1_OFFSET        0x0240
#define XLLP_MFP_PIN_DF_ADDR2_OFFSET        0x0244
#define XLLP_MFP_PIN_DF_ADDR3_OFFSET        0x0248
#define XLLP_MFP_PIN_DF_IO0_OFFSET          0x024C
#define XLLP_MFP_PIN_DF_IO8_OFFSET          0x0250
#define XLLP_MFP_PIN_DF_IO1_OFFSET          0x0254
#define XLLP_MFP_PIN_DF_IO9_OFFSET          0x0258
#define XLLP_MFP_PIN_DF_IO2_OFFSET          0x025C
#define XLLP_MFP_PIN_DF_IO10_OFFSET         0x0260
#define XLLP_MFP_PIN_DF_IO3_OFFSET          0x0264
#define XLLP_MFP_PIN_DF_IO11_OFFSET         0x0268
#define XLLP_MFP_PIN_DF_IO4_OFFSET          0x026C
#define XLLP_MFP_PIN_DF_IO12_OFFSET         0x0270
#define XLLP_MFP_PIN_DF_IO5_OFFSET          0x0274
#define XLLP_MFP_PIN_DF_IO13_OFFSET         0x0278
#define XLLP_MFP_PIN_DF_IO6_OFFSET          0x027C
#define XLLP_MFP_PIN_DF_IO14_OFFSET         0x0280
#define XLLP_MFP_PIN_DF_IO7_OFFSET          0x0284
#define XLLP_MFP_PIN_DF_IO15_OFFSET         0x0288
#define XLLP_MFP_PIN_GPIO5_OFFSET           0x028C
#define XLLP_MFP_PIN_GPIO6_OFFSET           0x0290
#define XLLP_MFP_PIN_GPIO7_OFFSET           0x0294
#define XLLP_MFP_PIN_GPIO8_OFFSET           0x0298
#define XLLP_MFP_PIN_GPIO9_OFFSET           0x029C
#define XLLP_MFP_PIN_GPIO11_OFFSET          0x02A0
#define XLLP_MFP_PIN_GPIO12_OFFSET          0x02A4
#define XLLP_MFP_PIN_GPIO13_OFFSET          0x02A8
#define XLLP_MFP_PIN_GPIO14_OFFSET          0x02AC
#define XLLP_MFP_PIN_GPIO15_OFFSET          0x02B0
#define XLLP_MFP_PIN_GPIO16_OFFSET          0x02B4
#define XLLP_MFP_PIN_GPIO17_OFFSET          0x02B8
#define XLLP_MFP_PIN_GPIO18_OFFSET          0x02BC
#define XLLP_MFP_PIN_GPIO19_OFFSET          0x02C0
#define XLLP_MFP_PIN_GPIO20_OFFSET          0x02C4
#define XLLP_MFP_PIN_GPIO21_OFFSET          0x02C8
#define XLLP_MFP_PIN_GPIO22_OFFSET          0x02CC
#define XLLP_MFP_PIN_GPIO23_OFFSET          0x02D0
#define XLLP_MFP_PIN_GPIO24_OFFSET          0x02D4
#define XLLP_MFP_PIN_GPIO25_OFFSET          0x02D8
#define XLLP_MFP_PIN_GPIO26_OFFSET          0x02DC
#define XLLP_MFP_PIN_GPIO27_OFFSET          0x0400
#define XLLP_MFP_PIN_GPIO28_OFFSET          0x0404
#define XLLP_MFP_PIN_GPIO29_OFFSET          0x0408
#define XLLP_MFP_PIN_GPIO30_OFFSET          0x040C
#define XLLP_MFP_PIN_GPIO31_OFFSET          0x0410
#define XLLP_MFP_PIN_GPIO32_OFFSET          0x0414
#define XLLP_MFP_PIN_GPIO33_OFFSET          0x0418
#define XLLP_MFP_PIN_GPIO34_OFFSET          0x041C
#define XLLP_MFP_PIN_GPIO35_OFFSET          0x0420
#define XLLP_MFP_PIN_GPIO36_OFFSET          0x0424
#define XLLP_MFP_PIN_GPIO37_OFFSET          0x0428
#define XLLP_MFP_PIN_GPIO38_OFFSET          0x042C
#define XLLP_MFP_PIN_GPIO39_OFFSET          0x0430
#define XLLP_MFP_PIN_GPIO40_OFFSET          0x0434
#define XLLP_MFP_PIN_GPIO41_OFFSET          0x0438
#define XLLP_MFP_PIN_GPIO42_OFFSET          0x043C
#define XLLP_MFP_PIN_GPIO43_OFFSET          0x0440
#define XLLP_MFP_PIN_GPIO44_OFFSET          0x0444
#define XLLP_MFP_PIN_GPIO45_OFFSET          0x0448
#define XLLP_MFP_PIN_GPIO46_OFFSET          0x044C
#define XLLP_MFP_PIN_GPIO47_OFFSET          0x0450
#define XLLP_MFP_PIN_GPIO48_OFFSET          0x0454
#define XLLP_MFP_PIN_GPIO10_OFFSET          0x0458
#define XLLP_MFP_PIN_GPIO49_OFFSET          0x045C
#define XLLP_MFP_PIN_GPIO50_OFFSET          0x0460
#define XLLP_MFP_PIN_GPIO51_OFFSET          0x0464
#define XLLP_MFP_PIN_GPIO52_OFFSET          0x0468
#define XLLP_MFP_PIN_GPIO53_OFFSET          0x046C
#define XLLP_MFP_PIN_GPIO54_OFFSET          0x0470
#define XLLP_MFP_PIN_GPIO55_OFFSET          0x0474
#define XLLP_MFP_PIN_GPIO56_OFFSET          0x0478
#define XLLP_MFP_PIN_GPIO57_OFFSET          0x047C
#define XLLP_MFP_PIN_GPIO58_OFFSET          0x0480
#define XLLP_MFP_PIN_GPIO59_OFFSET          0x0484
#define XLLP_MFP_PIN_GPIO60_OFFSET          0x0488
#define XLLP_MFP_PIN_GPIO61_OFFSET          0x048C
#define XLLP_MFP_PIN_GPIO62_OFFSET          0x0490
#define XLLP_MFP_PIN_GPIO6_2_OFFSET         0x0494
#define XLLP_MFP_PIN_GPIO7_2_OFFSET         0x0498
#define XLLP_MFP_PIN_GPIO8_2_OFFSET         0x049C
#define XLLP_MFP_PIN_GPIO9_2_OFFSET         0x04A0
#define XLLP_MFP_PIN_GPIO10_2_OFFSET        0x04A4
#define XLLP_MFP_PIN_GPIO11_2_OFFSET        0x04A8
#define XLLP_MFP_PIN_GPIO12_2_OFFSET        0x04AC
#define XLLP_MFP_PIN_GPIO13_2_OFFSET        0x04B0
#define XLLP_MFP_PIN_GPIO63_OFFSET          0x04B4
#define XLLP_MFP_PIN_GPIO64_OFFSET          0x04B8
#define XLLP_MFP_PIN_GPIO65_OFFSET          0x04BC
#define XLLP_MFP_PIN_GPIO66_OFFSET          0x04C0
#define XLLP_MFP_PIN_GPIO67_OFFSET          0x04C4
#define XLLP_MFP_PIN_GPIO68_OFFSET          0x04C8
#define XLLP_MFP_PIN_GPIO69_OFFSET          0x04CC
#define XLLP_MFP_PIN_GPIO70_OFFSET          0x04D0
#define XLLP_MFP_PIN_GPIO71_OFFSET          0x04D4
#define XLLP_MFP_PIN_GPIO72_OFFSET          0x04D8
#define XLLP_MFP_PIN_GPIO73_OFFSET          0x04DC
#define XLLP_MFP_PIN_GPIO14_2_OFFSET        0x04E0
#define XLLP_MFP_PIN_GPIO15_2_OFFSET        0x04E4
#define XLLP_MFP_PIN_GPIO16_2_OFFSET        0x04E8
#define XLLP_MFP_PIN_GPIO17_2_OFFSET        0x04EC
#define XLLP_MFP_PIN_GPIO74_OFFSET          0x04F0
#define XLLP_MFP_PIN_GPIO75_OFFSET          0x04F4
#define XLLP_MFP_PIN_GPIO76_OFFSET          0x04F8
#define XLLP_MFP_PIN_GPIO77_OFFSET          0x04FC
#define XLLP_MFP_PIN_GPIO78_OFFSET          0x0500
#define XLLP_MFP_PIN_GPIO79_OFFSET          0x0504
#define XLLP_MFP_PIN_GPIO80_OFFSET          0x0508
#define XLLP_MFP_PIN_GPIO81_OFFSET          0x050C
#define XLLP_MFP_PIN_GPIO82_OFFSET          0x0510
#define XLLP_MFP_PIN_GPIO83_OFFSET          0x0514
#define XLLP_MFP_PIN_GPIO84_OFFSET          0x0518
#define XLLP_MFP_PIN_GPIO85_OFFSET          0x051C
#define XLLP_MFP_PIN_GPIO86_OFFSET          0x0520
#define XLLP_MFP_PIN_GPIO87_OFFSET          0x0524
#define XLLP_MFP_PIN_GPIO88_OFFSET          0x0528
#define XLLP_MFP_PIN_GPIO89_OFFSET          0x052C
#define XLLP_MFP_PIN_GPIO90_OFFSET          0x0530
#define XLLP_MFP_PIN_GPIO91_OFFSET          0x0534
#define XLLP_MFP_PIN_GPIO92_OFFSET          0x0538
#define XLLP_MFP_PIN_GPIO93_OFFSET          0x053C
#define XLLP_MFP_PIN_GPIO94_OFFSET          0x0540
#define XLLP_MFP_PIN_GPIO95_OFFSET          0x0544
#define XLLP_MFP_PIN_GPIO96_OFFSET          0x0548
#define XLLP_MFP_PIN_GPIO97_OFFSET          0x054C
#define XLLP_MFP_PIN_GPIO98_OFFSET          0x0550
#define XLLP_MFP_PIN_GPIO99_OFFSET          0x0600
#define XLLP_MFP_PIN_GPIO100_OFFSET         0x0604
#define XLLP_MFP_PIN_GPIO101_OFFSET         0x0608
#define XLLP_MFP_PIN_GPIO102_OFFSET         0x060C
#define XLLP_MFP_PIN_GPIO103_OFFSET         0x0610
#define XLLP_MFP_PIN_GPIO104_OFFSET         0x0614
#define XLLP_MFP_PIN_GPIO105_OFFSET         0x0618
#define XLLP_MFP_PIN_GPIO106_OFFSET         0x061C
#define XLLP_MFP_PIN_GPIO107_OFFSET         0x0620
#define XLLP_MFP_PIN_GPIO108_OFFSET         0x0624
#define XLLP_MFP_PIN_GPIO109_OFFSET         0x0628
#define XLLP_MFP_PIN_GPIO110_OFFSET         0x062C
#define XLLP_MFP_PIN_GPIO111_OFFSET         0x0630
#define XLLP_MFP_PIN_GPIO112_OFFSET         0x0634
#define XLLP_MFP_PIN_GPIO113_OFFSET         0x0638
#define XLLP_MFP_PIN_GPIO114_OFFSET         0x063C
#define XLLP_MFP_PIN_GPIO115_OFFSET         0x0640
#define XLLP_MFP_PIN_GPIO116_OFFSET         0x0644
#define XLLP_MFP_PIN_GPIO117_OFFSET         0x0648
#define XLLP_MFP_PIN_GPIO118_OFFSET         0x064C
#define XLLP_MFP_PIN_GPIO119_OFFSET         0x0650
#define XLLP_MFP_PIN_GPIO120_OFFSET         0x0654
#define XLLP_MFP_PIN_GPIO121_OFFSET         0x0658
#define XLLP_MFP_PIN_GPIO122_OFFSET         0x065C
#define XLLP_MFP_PIN_GPIO123_OFFSET         0x0660
#define XLLP_MFP_PIN_GPIO124_OFFSET         0x0664
#define XLLP_MFP_PIN_GPIO125_OFFSET         0x0668
#define XLLP_MFP_PIN_GPIO126_OFFSET         0x066C
#define XLLP_MFP_PIN_GPIO127_OFFSET         0x0670
#define XLLP_MFP_PIN_GPIO0_2_OFFSET         0x0674
#define XLLP_MFP_PIN_GPIO1_2_OFFSET         0x0678
#define XLLP_MFP_PIN_GPIO2_2_OFFSET         0x067C
#define XLLP_MFP_PIN_GPIO3_2_OFFSET         0x0680
#define XLLP_MFP_PIN_GPIO4_2_OFFSET         0x0684
#define XLLP_MFP_PIN_GPIO5_2_OFFSET         0x0688

//
// End definitions of MFPR offset constants
//
/////////////////////////////////////////////////

/////////////////////////////////////////////////
//
// Begin definition of alternate functions per pin
//
// Notes:
//      - These definitions are in the same order as in the DM
//      Alternate Functions table, which is by logical-numeric or
//      alphabetical within pin categories
//
//  - Certain pins that may be named in the DM Alternate Functions
//      table are not under SW control for normal operations.
//      They do not appear in these Alternate Functions definitions.
//      They include the various MA, MD and DQ pins
//
//
//  - The Alternate Function symbols follow the DM table that associates
//    AFs with pins.  In some cases, the same AF is represented in more
//    than one way in the same table.  For those AFs, the more informative
//    representation is chosen.
//

// Pin GPIO0 alternate function codes
#define XLLP_MFP_PIN_GPIO0_AF_GPIO_0           XLLP_MFP_ALT_FN_0

// Pin GPIO1 alternate function codes
#define XLLP_MFP_PIN_GPIO1_AF_GPIO_1           XLLP_MFP_ALT_FN_0

// Pin GPIO2 alternate function codes
#define XLLP_MFP_PIN_GPIO2_AF_GPIO_2           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO2_AF_RDY              XLLP_MFP_ALT_FN_1

// Pin GPIO3 alternate function codes
#define XLLP_MFP_PIN_GPIO3_AF_GPIO_3           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO3_AF_nCS_2            XLLP_MFP_ALT_FN_1

// Pin GPIO4 alternate function codes
#define XLLP_MFP_PIN_GPIO4_AF_GPIO_4           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO4_AF_nCS_3            XLLP_MFP_ALT_FN_1

// Pin GPIO5 alternate function codes
#define XLLP_MFP_PIN_GPIO5_AF_GPIO_5           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO5_AF_MM2_DAT0         XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO5_AF_NPIOR            XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO5_AF_MM1_DAT0         XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO5_AF_SC_IO            XLLP_MFP_ALT_FN_6

// Pin GPIO6 alternate function codes
#define XLLP_MFP_PIN_GPIO6_AF_GPIO_6           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO6_AF_MM2_DAT1         XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO6_AF_nPIOW            XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO6_AF_MM1_DAT1         XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO6_AF_SC_DETECT        XLLP_MFP_ALT_FN_6

// Pin GPIO7 alternate function codes
#define XLLP_MFP_PIN_GPIO7_AF_GPIO_7           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO7_AF_MM2_DAT2_CS0     XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO7_AF_nIOIS16          XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO7_AF_MM1_DAT2_CS0     XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO7_AF_SC_CLK           XLLP_MFP_ALT_FN_6

// Pin GPIO8 alternate function codes
#define XLLP_MFP_PIN_GPIO8_AF_GPIO_8           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO8_AF_MM2_DAT3_CS1     XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO8_AF_nPWAIT           XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO8_AF_MM1_DAT3_CS1     XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO8_AF_SC_nRST          XLLP_MFP_ALT_FN_6

// Pin GPIO9 alternate function codes
#define XLLP_MFP_PIN_GPIO9_AF_GPIO_9           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO9_AF_SC_VS0           XLLP_MFP_ALT_FN_1

// Pin GPIO10 alternate function codes
#define XLLP_MFP_PIN_GPIO10_AF_GPIO_10         XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO10_AF_UTM_CLK         XLLP_MFP_ALT_FN_1

// Pin GPIO11 alternate function codes
#define XLLP_MFP_PIN_GPIO11_AF_GPIO_11         XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO11_AF_PWM_0           XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO11_AF_AC97_SDATA_IN_2 XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO11_AF_EXT_SYNC0       XLLP_MFP_ALT_FN_5

// Pin GPIO12 alternate function codes
#define XLLP_MFP_PIN_GPIO12_AF_GPIO_12          XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO12_AF_PWM_1            XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO12_AF_AC97_SDATA_IN_3  XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO12_AF_EXT_SYNC1        XLLP_MFP_ALT_FN_5

// Pin GPIO13 alternate function codes
#define XLLP_MFP_PIN_GPIO13_AF_GPIO_13          XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO13_AF_PWM_2            XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO13_AF_KP_MKOUT_4       XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO13_AF_CHOUT0           XLLP_MFP_ALT_FN_6

// Pin GPIO14 alternate function codes
#define XLLP_MFP_PIN_GPIO14_AF_GPIO_14          XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO14_AF_PWM_3            XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO14_AF_KP_MKOUT_5       XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO14_AF_HZ_CLK           XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO14_AF_ONE_WIRE         XLLP_MFP_ALT_FN_5
#define XLLP_MFP_PIN_GPIO14_AF_CHOUT1           XLLP_MFP_ALT_FN_6

// Pin GPIO15 alternate function codes
#define XLLP_MFP_PIN_GPIO15_AF_GPIO_15           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO15_AF_U_VS0             XLLP_MFP_ALT_FN_1

// Pin GPIO16 alternate function codes
#define XLLP_MFP_PIN_GPIO16_AF_GPIO_16           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO16_AF_U_nVS1            XLLP_MFP_ALT_FN_1

// Pin GPIO17 alternate function codes
#define XLLP_MFP_PIN_GPIO17_AF_GPIO_17           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO17_AF_U_nVS2            XLLP_MFP_ALT_FN_1

// Pin GPIO18 alternate function codes
#define XLLP_MFP_PIN_GPIO18_AF_GPIO_18           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO18_AF_U_IO              XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO18_AF_MS1_SDIO          XLLP_MFP_ALT_FN_3
// Using signal name because the AF table shows it two ways
#define XLLP_MFP_PIN_GPIO18_AF_MM1_DAT0          XLLP_MFP_ALT_FN_4

// Pin GPIO19 alternate function codes
#define XLLP_MFP_PIN_GPIO19_AF_GPIO_19           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO19_AF_U_DETECT          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO19_AF_MS1_BS            XLLP_MFP_ALT_FN_3
// Using signal name because the AF table shows it two ways
#define XLLP_MFP_PIN_GPIO19_AF_MM1_DAT1          XLLP_MFP_ALT_FN_4

// Pin GPIO20 alternate function codes
#define XLLP_MFP_PIN_GPIO20_AF_GPIO_20           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO20_AF_U_CLK             XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO20_AF_MS1_SCLK          XLLP_MFP_ALT_FN_3
// Using signal name because the AF table shows it two ways
#define XLLP_MFP_PIN_GPIO20_AF_MM1_DAT2_CS0      XLLP_MFP_ALT_FN_4

// Pin GPIO21 alternate function codes
#define XLLP_MFP_PIN_GPIO21_AF_GPIO_21           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO21_AF_U_nRST            XLLP_MFP_ALT_FN_1
// Using signal name because the AF table shows it two ways
#define XLLP_MFP_PIN_GPIO21_AF_MM1_DAT3_CS1        XLLP_MFP_ALT_FN_4

// Pin GPIO22 alternate function codes
#define XLLP_MFP_PIN_GPIO22_AF_GPIO_22           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO22_AF_MM1_CLK           XLLP_MFP_ALT_FN_4

// Pin GPIO23 alternate function codes
#define XLLP_MFP_PIN_GPIO23_AF_GPIO_23           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO23_AF_MM1_CMD           XLLP_MFP_ALT_FN_4

// Pin GPIO24 alternate function codes
#define XLLP_MFP_PIN_GPIO24_AF_GPIO_24           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO24_AF_SC_IO             XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO24_AF_MS2_SDIO          XLLP_MFP_ALT_FN_3
// Using signal name because the AF table shows it two ways
#define XLLP_MFP_PIN_GPIO24_AF_MM2_DAT0          XLLP_MFP_ALT_FN_4

// Pin GPIO25 alternate function codes
#define XLLP_MFP_PIN_GPIO25_AF_GPIO_25           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO25_AF_SC_DETECT         XLLP_MFP_ALT_FN_1
// Using signal name because the AF table shows it two ways
#define XLLP_MFP_PIN_GPIO25_AF_MM2_DAT1          XLLP_MFP_ALT_FN_4

// Pin GPIO26 alternate function codes
#define XLLP_MFP_PIN_GPIO26_AF_GPIO_26          XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO26_AF_SC_CLK           XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO26_AF_MS2_SCLK         XLLP_MFP_ALT_FN_3
// Using signal name because the AF table shows it two ways
#define XLLP_MFP_PIN_GPIO26_AF_MM2_DAT2_CS0     XLLP_MFP_ALT_FN_4

// Pin GPIO27 alternate function codes
#define XLLP_MFP_PIN_GPIO27_AF_GPIO_27           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO27_AF_SC_nRST          XLLP_MFP_ALT_FN_1
// Using signal name because the AF table shows it two ways
#define XLLP_MFP_PIN_GPIO27_AF_MM2_DAT3_CS1     XLLP_MFP_ALT_FN_4

// Pin GPIO28 alternate function codes
#define XLLP_MFP_PIN_GPIO28_AF_GPIO_28           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO28_AF_MM2_CLK           XLLP_MFP_ALT_FN_4

// Pin GPIO29 alternate function codes
#define XLLP_MFP_PIN_GPIO29_AF_GPIO_29           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO29_AF_MM2_CMD           XLLP_MFP_ALT_FN_4

// Pin GPIO30 alternate function codes
#define XLLP_MFP_PIN_GPIO30_AF_GPIO_30           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO30_AF_ICP_RXD           XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO30_AF_UART3_RXD         XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO30_AF_MM2_CLK           XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO30_AF_MM1_CLK           XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO30_AF_UART3_TXD         XLLP_MFP_ALT_FN_6

// Pin GPIO31 alternate function codes
#define XLLP_MFP_PIN_GPIO31_AF_GPIO_31           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO31_AF_ICP_TXD           XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO31_AF_UART3_TXD         XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO31_AF_MM2_CMD           XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO31_AF_MM1_CMD           XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO31_AF_CIR_OUT           XLLP_MFP_ALT_FN_5
#define XLLP_MFP_PIN_GPIO31_AF_UART3_RXD         XLLP_MFP_ALT_FN_6

// Pin GPIO32 alternate function codes
#define XLLP_MFP_PIN_GPIO32_AF_GPIO_32           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO32_AF_SCL               XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO32_AF_AC97_SDATA_IN_2   XLLP_MFP_ALT_FN_2

// Pin GPIO33 alternate function codes
#define XLLP_MFP_PIN_GPIO33_AF_GPIO_33           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO33_AF_SDA               XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO33_AF_AC97_SDATA_IN_3   XLLP_MFP_ALT_FN_2

// Pin GPIO34 alternate function codes
#define XLLP_MFP_PIN_GPIO34_AF_GPIO_34           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO34_AF_AC97_SYSCLK       XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO34_AF_UTM_RXVALID       XLLP_MFP_ALT_FN_3

// Pin GPIO35 alternate function codes
#define XLLP_MFP_PIN_GPIO35_AF_GPIO_35           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO35_AF_AC97_SDATA_IN_0   XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO35_AF_SSPSCLK2          XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO35_AF_UTM_RXACTIVE      XLLP_MFP_ALT_FN_3

// Pin GPIO36 alternate function codes
#define XLLP_MFP_PIN_GPIO36_AF_GPIO_36           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO36_AF_AC97_SDATA_IN_1   XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO36_AF_SSPSFRM2          XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO36_AF_U2D_RXERROR       XLLP_MFP_ALT_FN_3

// Pin GPIO37 alternate function codes
#define XLLP_MFP_PIN_GPIO37_AF_GPIO_37           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO37_AF_AC97_SDATA_OUT    XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO37_AF_SSPTXD2           XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO37_AF_U2D_OPMODE0_SCAN  XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO37_AF_U2D_OPMODE0       XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO37_AF_SSPRXD2           XLLP_MFP_ALT_FN_5

// Pin GPIO38 alternate function codes
#define XLLP_MFP_PIN_GPIO38_AF_GPIO_38           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO38_AF_AC97_SYNC         XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO38_AF_SSPRXD2           XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO38_AF_U2D_OPMODE1_SCAN  XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO38_AF_U2D_OPMODE1       XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO38_AF_SSPTXD2           XLLP_MFP_ALT_FN_5

// Pin GPIO39 alternate function codes
#define XLLP_MFP_PIN_GPIO39_AF_GPIO_39              XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO39_AF_AC97_BITCLK          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO39_AF_SSPEXTCLK2_CLK2EN    XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO39_AF_U2D_TXVALID_SCAN     XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO39_AF_U2D_TXVALID          XLLP_MFP_ALT_FN_4

// Pin GPIO40 alternate function codes
#define XLLP_MFP_PIN_GPIO40_AF_GPIO_40           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO40_AF_AC97_nACRESET     XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO40_AF_SSPSYSCLK2        XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO40_AF_UTM_TXREADY       XLLP_MFP_ALT_FN_3

// Pin GPIO41 alternate function codes
#define XLLP_MFP_PIN_GPIO41_AF_GPIO_41           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO41_AF_U2D_DATA0_SCAN    XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO41_AF_UART1_RXD         XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO41_AF_U2D_DATA0         XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO41_AF_UART1_TXD         XLLP_MFP_ALT_FN_4

// Pin GPIO42 alternate function codes
#define XLLP_MFP_PIN_GPIO42_AF_GPIO_42           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO42_AF_U2D_DATA1_SCAN    XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO42_AF_UART1_TXD         XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO42_AF_U2D_DATA1         XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO42_AF_UART1_RXD         XLLP_MFP_ALT_FN_4

// Pin GPIO43 alternate function codes
#define XLLP_MFP_PIN_GPIO43_AF_GPIO_43           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO43_AF_U2D_DATA2_SCAN    XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO43_AF_UART1_CTS         XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO43_AF_U2D_DATA2         XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO43_AF_UART1_RTS         XLLP_MFP_ALT_FN_4

// Pin GPIO44 alternate function codes
#define XLLP_MFP_PIN_GPIO44_AF_GPIO_44           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO44_AF_U2D_DATA3_SCAN    XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO44_AF_UART1_DCD         XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO44_AF_U2D_DATA3         XLLP_MFP_ALT_FN_3

// Pin GPIO45 alternate function codes
#define XLLP_MFP_PIN_GPIO45_AF_GPIO_45           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO45_AF_U2D_DATA4_SCAN    XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO45_AF_UART1_DSR         XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO45_AF_U2D_DATA4         XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO45_AF_UART1_DTR         XLLP_MFP_ALT_FN_4

// Pin GPIO46 alternate function codes
#define XLLP_MFP_PIN_GPIO46_AF_GPIO_46           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO46_AF_U2D_DATA5_SCAN    XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO46_AF_UART1_RI          XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO46_AF_U2D_DATA5         XLLP_MFP_ALT_FN_3

// Pin GPIO47 alternate function codes
#define XLLP_MFP_PIN_GPIO47_AF_GPIO_47           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO47_AF_U2D_DATA6_SCAN    XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO47_AF_UART1_DTR         XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO47_AF_U2D_DATA6         XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO47_AF_UART1_DSR         XLLP_MFP_ALT_FN_4

// Pin GPIO48 alternate function codes
#define XLLP_MFP_PIN_GPIO48_AF_GPIO_48           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO48_AF_U2D_DATA7_SCAN    XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO48_AF_UART1_RTS         XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO48_AF_U2D_DATA7         XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO48_AF_UART1_CTS         XLLP_MFP_ALT_FN_4

// Pin GPIO49 alternate function codes
#define XLLP_MFP_PIN_GPIO49_AF_GPIO_49           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO49_AF_CIF_DD_0          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO49_AF_U2D_DATA0_SCAN    XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO49_AF_U2D_DATA0         XLLP_MFP_ALT_FN_3

// Pin GPIO50 alternate function codes
#define XLLP_MFP_PIN_GPIO50_AF_GPIO_50           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO50_AF_CIF_DD_1          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO50_AF_U2D_DATA1_SCAN    XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO50_AF_U2D_DATA1         XLLP_MFP_ALT_FN_3

// Pin GPIO51 alternate function codes
#define XLLP_MFP_PIN_GPIO51_AF_GPIO_51           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO51_AF_CIF_DD_2          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO51_AF_U2D_DATA2_SCAN    XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO51_AF_U2D_DATA2         XLLP_MFP_ALT_FN_3

// Pin GPIO52 alternate function codes
#define XLLP_MFP_PIN_GPIO52_AF_GPIO_52           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO52_AF_CIF_DD_3          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO52_AF_U2D_DATA3_SCAN    XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO52_AF_U2D_DATA3         XLLP_MFP_ALT_FN_3

// Pin GPIO53 alternate function codes
#define XLLP_MFP_PIN_GPIO53_AF_GPIO_53           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO53_AF_CIF_DD_4          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO53_AF_U2D_DATA4_SCAN    XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO53_AF_U2D_DATA4         XLLP_MFP_ALT_FN_3

// Pin GPIO54 alternate function codes
#define XLLP_MFP_PIN_GPIO54_AF_GPIO_54           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO54_AF_CIF_DD_5          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO54_AF_U2D_DATA5_SCAN    XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO54_AF_U2D_DATA5         XLLP_MFP_ALT_FN_3

// Pin GPIO55 alternate function codes
#define XLLP_MFP_PIN_GPIO55_AF_GPIO_55           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO55_AF_CIF_DD_6          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO55_AF_U2D_DATA6_SCAN    XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO55_AF_U2D_DATA6         XLLP_MFP_ALT_FN_3

// Pin GPIO56 alternate function codes
#define XLLP_MFP_PIN_GPIO56_AF_GPIO_56           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO56_AF_CIF_DD_7          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO56_AF_U2D_DATA7_SCAN    XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO56_AF_U2D_DATA7         XLLP_MFP_ALT_FN_3

// Pin GPIO57 alternate function codes
#define XLLP_MFP_PIN_GPIO57_AF_GPIO_57           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO57_AF_CIF_DD_8          XLLP_MFP_ALT_FN_1

// Pin GPIO58 alternate function codes
#define XLLP_MFP_PIN_GPIO58_AF_GPIO_58           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO58_AF_CIF_DD_9          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO58_AF_UTM_RXVALID       XLLP_MFP_ALT_FN_2

// Pin GPIO59 alternate function codes
//  Note: no GPIO AF option for Pin GPIO59
#define XLLP_MFP_PIN_GPIO59_AF_CIF_MCLK          XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO59_AF_UTM_RXACTIVE      XLLP_MFP_ALT_FN_1

// Pin GPIO60 alternate function codes
//  Note: no GPIO AF option for Pin GPIO60
#define XLLP_MFP_PIN_GPIO60_AF_CIF_PCLK          XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO60_AF_U2D_RXERROR       XLLP_MFP_ALT_FN_1

// Pin GPIO61 alternate function codes
//  Note: no GPIO AF option for Pin GPIO61
#define XLLP_MFP_PIN_GPIO61_AF_CIF_HSYNC         XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO61_AF_U2D_OPMODE0_SCAN  XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO61_AF_U2D_OPMODE0       XLLP_MFP_ALT_FN_2

// Pin GPIO62 alternate function codes
//  Note: no GPIO AF option for Pin GPIO62
#define XLLP_MFP_PIN_GPIO62_AF_CIF_VSYNC         XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO62_AF_U2D_OPMODE0_SCAN  XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO62_AF_U2D_OPMODE1       XLLP_MFP_ALT_FN_2

// Pin GPIO63 alternate function codes
#define XLLP_MFP_PIN_GPIO63_AF_GPIO_63           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO63_AF_L_DD_8            XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO63_AF_L_CS              XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO63_AF_L_LP_DD_8         XLLP_MFP_ALT_FN_7

// Pin GPIO64 alternate function codes
#define XLLP_MFP_PIN_GPIO64_AF_GPIO_64           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO64_AF_L_DD_9            XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO64_AF_L_VSYNC           XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO64_AF_L_LP_DD_9         XLLP_MFP_ALT_FN_7

// Pin GPIO65 alternate function codes
#define XLLP_MFP_PIN_GPIO65_AF_GPIO_65                  XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO65_AF_L_DD_10                  XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO65_AF_U2D_XCVR_SELECT_SCAN     XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO65_AF_U2D_XCVR_SELECT          XLLP_MFP_ALT_FN_5
#define XLLP_MFP_PIN_GPIO65_AF_L_LP_DD_10               XLLP_MFP_ALT_FN_7

// Pin GPIO66 alternate function codes
#define XLLP_MFP_PIN_GPIO66_AF_GPIO_66                  XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO66_AF_L_DD_11                  XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO66_AF_U2D_TERM_SELECT_SCAN     XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO66_AF_U2D_TERM_SELECT          XLLP_MFP_ALT_FN_5
#define XLLP_MFP_PIN_GPIO66_AF_L_LP_DD_11               XLLP_MFP_ALT_FN_7

// Pin GPIO67 alternate function codes
#define XLLP_MFP_PIN_GPIO67_AF_GPIO_67                  XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO67_AF_L_DD_12                  XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO67_AF_U2D_SUSPEND_X            XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO67_AF_L_LP_DD_12               XLLP_MFP_ALT_FN_7

// Pin GPIO68 alternate function codes
#define XLLP_MFP_PIN_GPIO68_AF_GPIO_68                  XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO68_AF_L_DD_13                  XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO68_AF_UTM_LINESTATE_0          XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO68_AF_L_LP_DD_13               XLLP_MFP_ALT_FN_7

// Pin GPIO69 alternate function codes
#define XLLP_MFP_PIN_GPIO69_AF_GPIO_69                  XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO69_AF_L_DD_14                  XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO69_AF_SSPCLK3                  XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO69_AF_UTM_LINESTATE_1          XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO69_AF_L_LP_DD_14               XLLP_MFP_ALT_FN_7

// Pin GPIO70 alternate function codes
#define XLLP_MFP_PIN_GPIO70_AF_GPIO_70                  XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO70_AF_L_DD_15                  XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO70_AF_SSPFRM3                  XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO70_AF_U2D_TXVALID_SCAN         XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO70_AF_U2D_TXVALID              XLLP_MFP_ALT_FN_5
#define XLLP_MFP_PIN_GPIO70_AF_L_LP_DD_15               XLLP_MFP_ALT_FN_7

// Pin GPIO71 alternate function codes
#define XLLP_MFP_PIN_GPIO71_AF_GPIO_71                  XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO71_AF_L_DD_16                  XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO71_AF_SSPTTXD3                 XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO71_AF_UTM_TXREADY              XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO71_AF_SSPRXD3                  XLLP_MFP_ALT_FN_5

// Pin GPIO72 alternate function codes
#define XLLP_MFP_PIN_GPIO72_AF_GPIO_72                  XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO72_AF_L_DD_17                  XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO72_AF_SSPRXD3                  XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO72_AF_SSPTXD3                  XLLP_MFP_ALT_FN_5

// Pin GPIO73 alternate function codes
#define XLLP_MFP_PIN_GPIO73_AF_GPIO_73           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO73_AF_L_CS              XLLP_MFP_ALT_FN_2

// Pin GPIO74 alternate function codes
#define XLLP_MFP_PIN_GPIO74_AF_GPIO_74           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO74_AF_U2D_RESET         XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO74_AF_L_VSYNC           XLLP_MFP_ALT_FN_2

// Pin GPIO75 alternate function codes
#define XLLP_MFP_PIN_GPIO75_AF_GPIO_75           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO75_AF_USB_P3_1          XLLP_MFP_ALT_FN_2
// Using signal name because the AF table shows it two ways
#define XLLP_MFP_PIN_GPIO75_AF_MM2_DAT0          XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO75_AF_MSL1_OB_DAT_0     XLLP_MFP_ALT_FN_6

// Pin GPIO76 alternate function codes
#define XLLP_MFP_PIN_GPIO76_AF_GPIO_76           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO76_AF_USB_P3_2          XLLP_MFP_ALT_FN_2
// Using signal name because the AF table shows it two ways
#define XLLP_MFP_PIN_GPIO76_AF_MM2_DAT1          XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO76_AF_MSL1_OB_CLK       XLLP_MFP_ALT_FN_6

// Pin GPIO77 alternate function codes
#define XLLP_MFP_PIN_GPIO77_AF_GPIO_77           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO77_AF_USB_P3_3          XLLP_MFP_ALT_FN_2
// Using signal name because the AF table shows it two ways
#define XLLP_MFP_PIN_GPIO77_AF_MM2_DAT2_CS0      XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO77_AF_MSL1_OB_STB       XLLP_MFP_ALT_FN_6

// Pin GPIO78 alternate function codes
#define XLLP_MFP_PIN_GPIO78_AF_GPIO_78           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO78_AF_USB_P3_4          XLLP_MFP_ALT_FN_2
// Using signal name because the AF table shows it two ways
#define XLLP_MFP_PIN_GPIO78_AF_MM2_DAT3_CS1      XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO78_AF_MSL1_OB_WAIT      XLLP_MFP_ALT_FN_6

// Pin GPIO79 alternate function codes
#define XLLP_MFP_PIN_GPIO79_AF_GPIO_79           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO79_AF_USB_P3_5          XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO79_AF_MM2_CLK           XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO79_AF_MSL1_OB_DAT_0     XLLP_MFP_ALT_FN_6

// Pin GPIO80 alternate function codes
#define XLLP_MFP_PIN_GPIO80_AF_GPIO_80           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO80_AF_USB_P3_6          XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO80_AF_MM2_CMD           XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO80_AF_MSL1_IB_CLK       XLLP_MFP_ALT_FN_6

// Pin GPIO81 alternate function codes
#define XLLP_MFP_PIN_GPIO81_AF_GPIO_81           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO81_AF_MSL1_IB_STB       XLLP_MFP_ALT_FN_6

// Pin GPIO82 alternate function codes
#define XLLP_MFP_PIN_GPIO82_AF_GPIO_82           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO82_AF_MSL1_IB_WAIT      XLLP_MFP_ALT_FN_6

// Pin GPIO83 alternate function codes
#define XLLP_MFP_PIN_GPIO83_AF_GPIO_83           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO83_AF_SSPSCLK           XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO83_AF_KP_MKOUT_0        XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO83_AF_KP_DKIN_0         XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO83_AF_MSL1_IB_DAT_1     XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO83_AF_U2D_TXVALID_SCAN  XLLP_MFP_ALT_FN_5
#define XLLP_MFP_PIN_GPIO83_AF_U2D_TXVALID       XLLP_MFP_ALT_FN_7

// Pin GPIO84 alternate function codes
#define XLLP_MFP_PIN_GPIO84_AF_GPIO_84           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO84_AF_SSPSFRM           XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO84_AF_KP_MKOUT_1        XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO84_AF_KP_DKIN_1         XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO84_AF_MSL1_IB_DAT_2     XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO84_AF_UTM_TXREADY       XLLP_MFP_ALT_FN_5

// Pin GPIO85 alternate function codes
#define XLLP_MFP_PIN_GPIO85_AF_GPIO_85           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO85_AF_SSPSTXD           XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO85_AF_KP_MKOUT_2        XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO85_AF_KP_DKIN_2         XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO85_AF_MSL1_IB_DAT_3     XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO85_AF_UTM_RXVALID       XLLP_MFP_ALT_FN_5
#define XLLP_MFP_PIN_GPIO85_AF_SSPRXD            XLLP_MFP_ALT_FN_6

// Pin GPIO86 alternate function codes
#define XLLP_MFP_PIN_GPIO86_AF_GPIO_86           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO86_AF_SSPSRXD           XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO86_AF_KP_MKOUT_3        XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO86_AF_KP_DKIN_3         XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO86_AF_MSL1_OB_DAT_1     XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO86_AF_UTM_RXACTIVE      XLLP_MFP_ALT_FN_5
#define XLLP_MFP_PIN_GPIO86_AF_SSPTXD            XLLP_MFP_ALT_FN_6

// Pin GPIO87 alternate function codes
#define XLLP_MFP_PIN_GPIO87_AF_GPIO_87           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO87_AF_SSPEXTCLK_CLKEN   XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO87_AF_SC_nVS1           XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO87_AF_MSL1_OB_DAT_2     XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO87_AF_U2D_RXERROR       XLLP_MFP_ALT_FN_5

// Pin GPIO88 alternate function codes
#define XLLP_MFP_PIN_GPIO88_AF_GPIO_88           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO88_AF_SSPSYSCLK         XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO88_AF_SC_nVS2           XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO88_AF_MSL1_OB_DAT_3     XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO88_AF_U2D_OPMODE0_SCAN  XLLP_MFP_ALT_FN_5
#define XLLP_MFP_PIN_GPIO88_AF_U2D_OPMODE0       XLLP_MFP_ALT_FN_7

// Pin GPIO89 alternate function codes
#define XLLP_MFP_PIN_GPIO89_AF_GPIO_89           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO89_AF_SSPSCLK3          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO89_AF_UART3_CTS         XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO89_AF_UART3_RTS         XLLP_MFP_ALT_FN_4

// Pin GPIO90 alternate function codes
#define XLLP_MFP_PIN_GPIO90_AF_GPIO_90           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO90_AF_SSPSFRM3          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO90_AF_UART3_RTS         XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO90_AF_UTM_LINESTATE_0   XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO90_AF_UART3_CTS         XLLP_MFP_ALT_FN_4

// Pin GPIO91 alternate function codes
#define XLLP_MFP_PIN_GPIO91_AF_GPIO_91           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO91_AF_SSPTXD3           XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO91_AF_UART3_TXD         XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO91_AF_UTM_LINESTATE_1   XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO91_AF_UART3_RXD         XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO91_AF_SSPRXD3           XLLP_MFP_ALT_FN_5

// Pin GPIO92 alternate function codes
#define XLLP_MFP_PIN_GPIO92_AF_GPIO_92           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO92_AF_SSPRXD3           XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO92_AF_UART3_RXD         XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO92_AF_UART3_TXD         XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO92_AF_SSPTXD3           XLLP_MFP_ALT_FN_5

// Pin GPIO93 alternate function codes
#define XLLP_MFP_PIN_GPIO93_AF_GPIO_93           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO93_AF_SSPSCLK4          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO93_AF_U2D_RESET         XLLP_MFP_ALT_FN_2

// Pin GPIO94 alternate function codes
#define XLLP_MFP_PIN_GPIO94_AF_GPIO_94              XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO94_AF_SSPSFRM4             XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO94_AF_U2D_XCVR_SELECT_SCAN XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO94_AF_U2D_XCVR_SELECT      XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO94_AF_SSPSRXD4             XLLP_MFP_ALT_FN_5

// Pin GPIO95 alternate function codes
#define XLLP_MFP_PIN_GPIO95_AF_GPIO_95              XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO95_AF_SSPTXD4              XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO95_AF_U2D_TERM_SELECT_SCAN XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO95_AF_U2D_TERM_SELECT      XLLP_MFP_ALT_FN_3

// Pin GPIO96 alternate function codes
#define XLLP_MFP_PIN_GPIO96_AF_GPIO_96           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO96_AF_SSPRXD4           XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO96_AF_U2D_SUSPENDM_X    XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO96_AF_SSPTXD4           XLLP_MFP_ALT_FN_5

// Pin GPIO97 alternate function codes
#define XLLP_MFP_PIN_GPIO97_AF_GPIO_97           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO97_AF_UART1_RXD         XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO97_AF_USB_P2_2          XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO97_AF_USB_P2_6          XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO97_AF_UART1_TXD         XLLP_MFP_ALT_FN_6

// Pin GPIO98 alternate function codes
#define XLLP_MFP_PIN_GPIO98_AF_GPIO_98             XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO98_AF_UART1_TXDUART1_TXD  XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO98_AF_USB_P2_6            XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO98_AF_U2D_RESET           XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO98_AF_USB_P2_2            XLLP_MFP_ALT_FN_4
#define XLLP_MFP_PIN_GPIO98_AF_UART1_RXD           XLLP_MFP_ALT_FN_6

// Pin GPIO99 alternate function codes
#define XLLP_MFP_PIN_GPIO99_AF_GPIO_99                XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO99_AF_UART1_CTS              XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO99_AF_USB_P2_1               XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO99_AF_U2D_XCVR_SELECT_SCAN   XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO99_AF_U2D_XCVR_SELECT        XLLP_MFP_ALT_FN_5
#define XLLP_MFP_PIN_GPIO99_AF_UART1_RTS              XLLP_MFP_ALT_FN_6

// Pin GPIO100 alternate function codes
#define XLLP_MFP_PIN_GPIO100_AF_GPIO_100              XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO100_AF_UART1_DCD             XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO100_AF_USB_P2_4              XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO100_AF_U2D_TERM_SELECT_SCAN  XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO100_AF_U2D_TERM_SELECT       XLLP_MFP_ALT_FN_5

// Pin GPIO101 alternate function codes
#define XLLP_MFP_PIN_GPIO101_AF_GPIO_101              XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO101_AF_UART1_DSR             XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO101_AF_USB_P2_8              XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO101_AF_U2D_SUSPENDM_X        XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO101_AF_UART1_DTR             XLLP_MFP_ALT_FN_6

// Pin GPIO102 alternate function codes
#define XLLP_MFP_PIN_GPIO102_AF_GPIO_102              XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO102_AF_UART1_RI              XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO102_AF_USB_P2_3              XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO102_AF_UTM_LINESTATE_0       XLLP_MFP_ALT_FN_3

// Pin GPIO103 alternate function codes
#define XLLP_MFP_PIN_GPIO103_AF_GPIO_103           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO103_AF_UART1_DTR          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO103_AF_USB_P2_5           XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO103_AF_UTM_LINESTATE_1    XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO103_AF_UART1_DSR          XLLP_MFP_ALT_FN_6

// Pin GPIO104 alternate function codes
#define XLLP_MFP_PIN_GPIO104_AF_GPIO_104           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO104_AF_UART1_RTS          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO104_AF_USB_P2_7           XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO104_AF_U2D_OPMODE1_SCAN   XLLP_MFP_ALT_FN_3
#define XLLP_MFP_PIN_GPIO104_AF_U2D_OPMODE1        XLLP_MFP_ALT_FN_5
#define XLLP_MFP_PIN_GPIO104_AF_UART1_CTS          XLLP_MFP_ALT_FN_6

// Pin GPIO105 alternate function codes
#define XLLP_MFP_PIN_GPIO105_AF_GPIO_105           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO105_AF_UART3_CTS          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO105_AF_KP_DKIN_0          XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO105_AF_UART3_RTS          XLLP_MFP_ALT_FN_3

#define XLLP_MFP_PIN_GPIO106_AF_GPIO_106           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO106_AF_UART3_RTS          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO106_AF_KP_DKIN_1          XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO106_AF_UART3_CTS          XLLP_MFP_ALT_FN_3

// Pin GPIO107 alternate function codes
#define XLLP_MFP_PIN_GPIO107_AF_GPIO_107           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO107_AF_UART3_TXD          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO107_AF_KP_DKIN_2          XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO107_AF_UART3_RXD          XLLP_MFP_ALT_FN_3

// Pin GPIO108 alternate function codes
#define XLLP_MFP_PIN_GPIO108_AF_GPIO_108           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO108_AF_UART3_RXD          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO108_AF_KP_DKIN_3          XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO108_AF_UART3_TXD          XLLP_MFP_ALT_FN_3

// Pin GPIO109 alternate function codes
#define XLLP_MFP_PIN_GPIO109_AF_GPIO_109           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO109_AF_UART2_RTS          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO109_AF_KP_DKIN_4          XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO109_AF_UART2_CTS          XLLP_MFP_ALT_FN_3

// Pin GPIO110 alternate function codes
#define XLLP_MFP_PIN_GPIO110_AF_GPIO_110           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO110_AF_UART2_RXD          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO110_AF_KP_DKIN_5          XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO110_AF_UART2_TXD          XLLP_MFP_ALT_FN_3

// Pin GPIO111 alternate function codes
#define XLLP_MFP_PIN_GPIO111_AF_GPIO_111           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO111_AF_UART2_TXD          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO111_AF_KP_DKIN_6          XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO111_AF_UART2_RXD          XLLP_MFP_ALT_FN_3

// Pin GPIO112 alternate function codes
#define XLLP_MFP_PIN_GPIO112_AF_GPIO_112           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO112_AF_UART2_CTS          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO112_AF_KP_DKIN_7          XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO112_AF_UART2_RTS          XLLP_MFP_ALT_FN_3

// Pin GPIO113 alternate function codes
#define XLLP_MFP_PIN_GPIO113_AF_GPIO_113           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO113_AF_KP_MKIN_0          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO113_AF_KP_DKIN_0          XLLP_MFP_ALT_FN_2

// Pin GPIO114 alternate function codes
#define XLLP_MFP_PIN_GPIO114_AF_GPIO_114           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO114_AF_KP_MKIN_1          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO114_AF_KP_DKIN_1          XLLP_MFP_ALT_FN_2

// Pin GPIO115 alternate function codes
#define XLLP_MFP_PIN_GPIO115_AF_GPIO_115           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO115_AF_KP_MKIN_2          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO115_AF_KP_DKIN_2          XLLP_MFP_ALT_FN_2

// Pin GPIO116 alternate function codes
#define XLLP_MFP_PIN_GPIO115_AF_GPIO_116           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO116_AF_KP_MKIN_3          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO116_AF_KP_DKIN_3          XLLP_MFP_ALT_FN_2

// Pin GPIO117 alternate function codes
#define XLLP_MFP_PIN_GPIO117_AF_GPIO_117           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO117_AF_KP_MKIN_4          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO117_AF_KP_DKIN_4          XLLP_MFP_ALT_FN_2

// Pin GPIO118 alternate function codes
#define XLLP_MFP_PIN_GPIO118_AF_GPIO_118           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO118_AF_KP_MKIN_5          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO118_AF_KP_DKIN_5          XLLP_MFP_ALT_FN_2

// Pin GPIO119 alternate function codes
#define XLLP_MFP_PIN_GPIO119_AF_GPIO_119           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO119_AF_KP_MKIN_6          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO119_AF_KP_DKIN_6          XLLP_MFP_ALT_FN_2

// Pin GPIO120 alternate function codes
#define XLLP_MFP_PIN_GPIO120_AF_GPIO_120           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO120_AF_KP_MKIN_7          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO120_AF_KP_DKIN_7          XLLP_MFP_ALT_FN_2

// Pin GPIO121 alternate function codes
#define XLLP_MFP_PIN_GPIO121_AF_GPIO_121           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO121_AF_KP_MKOUT_0         XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO121_AF_KP_DKIN_6          XLLP_MFP_ALT_FN_2

// Pin GPIO122 alternate function codes
#define XLLP_MFP_PIN_GPIO122_AF_GPIO_122           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO122_AF_KP_MKOUT_1         XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO122_AF_KP_DKIN_5          XLLP_MFP_ALT_FN_2

// Pin GPIO123 alternate function codes
#define XLLP_MFP_PIN_GPIO123_AF_GPIO_123           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO123_AF_KP_MKOUT_2         XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO123_AF_KP_DKIN_4          XLLP_MFP_ALT_FN_2

// Pin GPIO124 alternate function codes
#define XLLP_MFP_PIN_GPIO124_AF_GPIO_124           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO124_AF_KP_MKOUT_3         XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO124_AF_KP_DKIN_3          XLLP_MFP_ALT_FN_2

// Pin GPIO125 alternate function codes
#define XLLP_MFP_PIN_GPIO125_AF_GPIO_125           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO125_AF_KP_MKOUT_4         XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO125_AF_KP_DKIN_2          XLLP_MFP_ALT_FN_2

// Pin GPIO126 alternate function codes
#define XLLP_MFP_PIN_GPIO126_AF_GPIO_126           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO126_AF_KP_MKOUT_5         XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO126_AF_KP_DKIN_1          XLLP_MFP_ALT_FN_2

// Pin GPIO127 alternate function codes
#define XLLP_MFP_PIN_GPIO127_AF_GPIO_127           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO127_AF_KP_MKOUT_6         XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO127_AF_KP_DKIN_0          XLLP_MFP_ALT_FN_2

// Pin GPIO0_2 alternate function codes
#define XLLP_MFP_PIN_GPIO0_2_AF_GPIO_0           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO0_2_AF_HZ_CLK           XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO0_2_AF_ONE_WIRE         XLLP_MFP_ALT_FN_2
#define XLLP_MFP_PIN_GPIO0_2_AF_CLK_EXT          XLLP_MFP_ALT_FN_3

// Pin GPIO1_2 alternate function codes
// Only the default AF is listed for GPIO1_2
#define XLLP_MFP_PIN_GPIO1_2_AF_GPIO_1           XLLP_MFP_ALT_FN_0

// Pin GPIO2_2 alternate function codes
#define XLLP_MFP_PIN_GPIO2_2_AF_GPIO_2           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO2_2_AF_USBHPEN          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO2_2_AF_KP_DKIN_0        XLLP_MFP_ALT_FN_2

// Pin GPIO3_2 alternate function codes
#define XLLP_MFP_PIN_GPIO3_2_AF_GPIO_3           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO3_2_AF_USBHPWR          XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO3_2_AF_KP_DKIN_1        XLLP_MFP_ALT_FN_2

// Pin GPIO4_2 alternate function codes
#define XLLP_MFP_PIN_GPIO4_2_AF_GPIO_4           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO4_2_AF_KP_DKIN_7        XLLP_MFP_ALT_FN_2

// Pin GPIO5_2 alternate function codes
#define XLLP_MFP_PIN_GPIO5_2_AF_GPIO_5           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO5_2_AF_KP_MKOUT_7       XLLP_MFP_ALT_FN_1

// Pin GPIO6_2 alternate function codes
#define XLLP_MFP_PIN_GPIO6_2_AF_GPIO_6           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO6_2_AF_L_DD_0           XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO6_2_AF_L_LP_LDD_0       XLLP_MFP_ALT_FN_7

// Pin GPIO7_2 alternate function codes
#define XLLP_MFP_PIN_GPIO7_2_AF_GPIO_7           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO7_2_AF_L_DD_1           XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO7_2_AF_L_LP_LDD_1       XLLP_MFP_ALT_FN_7

// Pin GPIO8_2 alternate function codes
#define XLLP_MFP_PIN_GPIO8_2_AF_GPIO_8           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO8_2_AF_L_DD_2           XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO8_2_AF_L_LP_LDD_2       XLLP_MFP_ALT_FN_7

// Pin GPIO9_2 alternate function codes
#define XLLP_MFP_PIN_GPIO9_2_AF_GPIO_9           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO9_2_AF_L_DD_3           XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO9_2_AF_L_LP_LDD_3       XLLP_MFP_ALT_FN_7

// Pin GPIO10_2 alternate function codes
#define XLLP_MFP_PIN_GPIO10_2_AF_GPIO_10           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO10_2_AF_L_DD_4           XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO10_2_AF_L_LP_LDD_4     XLLP_MFP_ALT_FN_7

// Pin GPIO11_2 alternate function codes
#define XLLP_MFP_PIN_GPIO11_2_AF_GPIO_11       XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO11_2_AF_L_DD_5        XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO11_2_AF_L_LP_LDD_5     XLLP_MFP_ALT_FN_7

// Pin GPIO12_2 alternate function codes
#define XLLP_MFP_PIN_GPIO12_2_AF_GPIO_12           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO12_2_AF_L_DD_6        XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO12_2_AF_L_LP_LDD_6     XLLP_MFP_ALT_FN_7

// Pin GPIO13_2 alternate function codes
#define XLLP_MFP_PIN_GPIO13_2_AF_GPIO_13           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO13_2_AF_L_DD_7         XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO13_2_AF_L_LP_LDD_7     XLLP_MFP_ALT_FN_7

// Pin GPIO14_2 alternate function codes
#define XLLP_MFP_PIN_GPIO14_2_AF_GPIO_14           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO14_2_AF_L_FCLK_RD         XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO14_2_AF_L_LP_FCLK         XLLP_MFP_ALT_FN_7

// Pin GPIO15_2 alternate function codes
#define XLLP_MFP_PIN_GPIO15_2_AF_GPIO_15           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO15_2_AF_L_LCLK_A0         XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO15_2_AF_L_LP_LCLK         XLLP_MFP_ALT_FN_7

// Pin GPIO16_2 alternate function codes
#define XLLP_MFP_PIN_GPIO16_2_AF_GPIO_16           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO16_2_AF_L_PCLK_WR         XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO16_2_AF_L_LP_PCLK         XLLP_MFP_ALT_FN_7

// Pin GPIO17_2 alternate function codes
#define XLLP_MFP_PIN_GPIO17_2_AF_GPIO_17           XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_GPIO17_2_AF_L_BIAS            XLLP_MFP_ALT_FN_1
#define XLLP_MFP_PIN_GPIO17_2_AF_L_LP_BIAS         XLLP_MFP_ALT_FN_7

// Pin nXCVREN alternate function codes
#define XLLP_MFP_PIN_nXCVREN_AF_nXCVREN            XLLP_MFP_ALT_FN_0

// Pin ND_CLE alternate function codes
#define XLLP_MFP_PIN_ND_CLE_AF_ND_CLE              XLLP_MFP_ALT_FN_0

// Pin DF_nADV1_ALE alternate function codes
#define XLLP_MFP_PIN_DF_nADV1_ALE_AF_DF_nADV1      XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_DF_nADV1_ALE_AF_ND_ALE        XLLP_MFP_ALT_FN_1

// Pin DF_SCLK_E alternate function codes
#define XLLP_MFP_PIN_DF_SCLK_E_AF_DF_SCLK_E        XLLP_MFP_ALT_FN_0

// Pin DF_SCLK_S alternate function codes
#define XLLP_MFP_PIN_DF_SCLK_S_AF_DF_SCLK_S        XLLP_MFP_ALT_FN_0

// Pin nBE0 alternate function codes
#define XLLP_MFP_PIN_nBE0_AF_nBE0                  XLLP_MFP_ALT_FN_0

// Pin nBE1 alternate function codes
#define XLLP_MFP_PIN_nBE1_AF_nBE1                  XLLP_MFP_ALT_FN_0

// Pin DF_nADV2_ALE alternate function codes
#define XLLP_MFP_PIN_DF_nADV2_ALE_AF_DF_nADV2      XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_DF_nADV2_ALE_AF_ND_ALE        XLLP_MFP_ALT_FN_1

// Pin DF_INT_RnB alternate function codes
#define XLLP_MFP_PIN_DF_INT_RnB_AF_DF_INT_RnB      XLLP_MFP_ALT_FN_0

// Pin DF_nCS0 alternate function codes
#define XLLP_MFP_PIN_DF_nCS0_AF_DF_NCS0            XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_DF_nCS0_AF_ND_NCS0            XLLP_MFP_ALT_FN_1

// Pin DF_nCS1 alternate function codes
#define XLLP_MFP_PIN_DF_nCS1_AF_DF_NCS1            XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_DF_nCS1_AF_ND_NCS1            XLLP_MFP_ALT_FN_1

// Pin nLUA alternate function codes
#define XLLP_MFP_PIN_nLUA_AF_nLUA                  XLLP_MFP_ALT_FN_0

// Pin nLLA alternate function codes
#define XLLP_MFP_PIN_nLLA_AF_nLLA                  XLLP_MFP_ALT_FN_0

// Pin DF_nWE alternate function codes
#define XLLP_MFP_PIN_DF_nWE_AF_DF_nWE              XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_DF_nWE_AF_ND_nWE              XLLP_MFP_ALT_FN_1

// Pin DF_nRE_nOE alternate function codes
#define XLLP_MFP_PIN_DF_nRE_nOE_AF_DF_nOE          XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_DF_nRE_nOE_AF_ND_nRE          XLLP_MFP_ALT_FN_1

// Pin ADDR0 alternate function codes
#define XLLP_MFP_PIN_DF_ADDR0_AF_DF_ADDR0          XLLP_MFP_ALT_FN_0

// Pin DF_ADDR1 alternate function codes
#define XLLP_MFP_PIN_DF_ADDR1_AF_DF_ADDR1          XLLP_MFP_ALT_FN_0

// Pin DF_ADDR2 alternate function codes
#define XLLP_MFP_PIN_DF_ADDR2_AF_DF_ADDR2          XLLP_MFP_ALT_FN_0

// Pin DF_ADDR3 alternate function codes
#define XLLP_MFP_PIN_DF_ADDR3_AF_DF_ADDR3          XLLP_MFP_ALT_FN_0

// Pin DF_IO15..0 alternate function codes
//   - Note that, in use, all 16 pins must have the same AF
//  Currently, only Alternate Function 1 is actually available
//  for these pins

#define XLLP_MFP_PIN_DF_IO_0_AF_DF               XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_DF_IO_0_AF_ND               XLLP_MFP_ALT_FN_1

#define XLLP_MFP_PIN_DF_IO_1_AF_DF               XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_DF_IO_1_AF_ND               XLLP_MFP_ALT_FN_1

#define XLLP_MFP_PIN_DF_IO_2_AF_DF               XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_DF_IO_2_AF_ND               XLLP_MFP_ALT_FN_1

#define XLLP_MFP_PIN_DF_IO_3_AF_DF               XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_DF_IO_3_AF_ND               XLLP_MFP_ALT_FN_1

#define XLLP_MFP_PIN_DF_IO_4_AF_DF               XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_DF_IO_4_AF_ND               XLLP_MFP_ALT_FN_1

#define XLLP_MFP_PIN_DF_IO_5_AF_DF               XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_DF_IO_5_AF_ND               XLLP_MFP_ALT_FN_1

#define XLLP_MFP_PIN_DF_IO_6_AF_DF               XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_DF_IO_6_AF_ND               XLLP_MFP_ALT_FN_1

#define XLLP_MFP_PIN_DF_IO_7_AF_DF               XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_DF_IO_7_AF_ND               XLLP_MFP_ALT_FN_1

#define XLLP_MFP_PIN_DF_IO_8_AF_DF               XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_DF_IO_8_AF_ND               XLLP_MFP_ALT_FN_1

#define XLLP_MFP_PIN_DF_IO_9_AF_DF               XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_DF_IO_9_AF_ND               XLLP_MFP_ALT_FN_1

#define XLLP_MFP_PIN_DF_IO_10_AF_DF              XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_DF_IO_10_AF_ND              XLLP_MFP_ALT_FN_1

#define XLLP_MFP_PIN_DF_IO_11_AF_DF              XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_DF_IO_11_AF_ND              XLLP_MFP_ALT_FN_1

#define XLLP_MFP_PIN_DF_IO_12_AF_DF              XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_DF_IO_12_AF_ND              XLLP_MFP_ALT_FN_1

#define XLLP_MFP_PIN_DF_IO_13_AF_DF              XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_DF_IO_13_AF_ND              XLLP_MFP_ALT_FN_1

#define XLLP_MFP_PIN_DF_IO_14_AF_DF              XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_DF_IO_14_AF_ND              XLLP_MFP_ALT_FN_1

#define XLLP_MFP_PIN_DF_IO_15_AF_DF              XLLP_MFP_ALT_FN_0
#define XLLP_MFP_PIN_DF_IO_15_AF_ND              XLLP_MFP_ALT_FN_1

//
// End definition of alternate functions per pin
//
/////////////////////////////////////////////////

/////////////////////////////////////////////////
//
// Begin any processor scope function prototypes
//

XLLP_STATUS_T XllpMfpResourceManager (
                P_XLLP_MFP_RM_DB_ID_T  pMfpRmDb,
                XLLP_UINT32_T          mfpOffset,
                XLLP_MFP_RM_DB_ID_T    claimantId,
                XLLP_UINT32_T          claimAction);

XLLP_STATUS_T XllpMfpResourceManager_List (
                P_XLLP_MFP_RM_DB_ID_T   pMfpRmDb,
                P_XLLP_UINT32_T     pMfpOffsetList,
                XLLP_MFP_RM_DB_ID_T claimantId,
                XLLP_UINT32_T       claimAction);

XLLP_STATUS_T XllpMfpResourceManagerInit (P_XLLP_MFP_RM_DB_ID_T pMfpRmDb);

XLLP_STATUS_T XllpMfpGetPinConfig (
                P_XLLP_VUINT32_T pMfpRegBase,
                XLLP_UINT32_T    mfpOffset,
                P_XLLP_VUINT32_T pMfpConfig);

// Individual pin functions

XLLP_STATUS_T XllpMfpInitUnusedPin (
                P_XLLP_VUINT32_T            pMfpRegBase,
                XLLP_UINT32_T               mfpOffset,
                XLLP_MFP_CONFIGURE_PULL_T   pullConfigure);

XLLP_STATUS_T XllpMfpInitUnusedPin_List (
                P_XLLP_VUINT32_T        pMfpRegBase,
                P_XLLP_UINT32_T         pMfpOffsetList,
                P_XLLP_MFP_CONFIGURE_PULL_T pPullConfigureList);

XLLP_STATUS_T XllpMfpSetAfDs (
                P_XLLP_VUINT32_T        pMfpRegBase,
                XLLP_UINT32_T           mfpOffset,
                XLLP_MFP_ALT_FN_T       afCode,
                XLLP_MFP_DRIVE_STRENGTH_T   driveStrength);

XLLP_STATUS_T XllpMfpSetAfDs_List (
                P_XLLP_VUINT32_T        pMfpRegBase,
                P_XLLP_UINT32_T         pMfpOffsetList,
                P_XLLP_MFP_ALT_FN_T     pAfCodeList,
                P_XLLP_MFP_DRIVE_STRENGTH_T pDriveStrengthList);

XLLP_STATUS_T XllpMfpConfigureWakeup (
                P_XLLP_VUINT32_T pMfpRegBase,
                XLLP_UINT32_T   mfpOffset,
                XLLP_MFP_EDGE_T edgeTrigger);

XLLP_STATUS_T XllpMfpConfigureWakeup_List (
                P_XLLP_VUINT32_T    pMfpRegBase,
                P_XLLP_UINT32_T     pMfpOffsetList,
                P_XLLP_MFP_EDGE_T   pEdgeTriggerList);

XLLP_STATUS_T XllpMfpEnableWakeup (
                P_XLLP_VUINT32_T pMfpRegBase,
                XLLP_UINT32_T   mfpOffset,
                XLLP_CONTROL_T  enable);

XLLP_STATUS_T XllpMfpEnableWakeup_List (
                P_XLLP_VUINT32_T    pMfpRegBase,
                P_XLLP_UINT32_T     pMfpOffsetList,
                XLLP_CONTROL_T      enable);

XLLP_STATUS_T XllpMfpConfigurePullUpDown (
                P_XLLP_VUINT32_T        pMfpRegBase,
                XLLP_UINT32_T           mfpOffset,
                XLLP_MFP_CONFIGURE_PULL_T   pullConfigure);

XLLP_STATUS_T XllpMfpConfigurePullUpDown_List (
                P_XLLP_VUINT32_T    pMfpRegBase,
                P_XLLP_UINT32_T     pMfpOffsetList,
                P_XLLP_MFP_CONFIGURE_PULL_T pPullConfigureList);

XLLP_STATUS_T XllpMfpActivatePullUpDown (
                P_XLLP_VUINT32_T        pMfpRegBase,
                XLLP_UINT32_T           mfpOffset,
                XLLP_CONTROL_T          enable);

XLLP_STATUS_T XllpMfpActivatePullUpDown_List (
                P_XLLP_VUINT32_T    pMfpRegBase,
                P_XLLP_UINT32_T     pMfpOffsetList,
                XLLP_CONTROL_T      enable);

XLLP_STATUS_T XllpMfpConfigureDrivenLpmOutputLevel (
                P_XLLP_VUINT32_T pMfpRegBase,
                XLLP_UINT32_T   mfpOffset,
                XLLP_LEVEL_T    level);

XLLP_STATUS_T XllpMfpEnableDrivenLpmOutputLevel (
                P_XLLP_VUINT32_T pMfpRegBase,
                XLLP_UINT32_T   mfpOffset,
                XLLP_CONTROL_T  enable);

XLLP_STATUS_T XllpMfpConfigureLpmOutputLevel_List (
                P_XLLP_VUINT32_T        pMfpRegBase,
                P_XLLP_UINT32_T         pMfpOffsetList,
                P_XLLP_MFP_LPM_OUTPUT_T pLpmOutputList);

XLLP_STATUS_T XllpMfpEnableRdhDrm(
                P_XLLP_VUINT32_T    pMfpRegBase,
                XLLP_UINT32_T       mfpOffset,
                XLLP_CONTROL_T      enable);

XLLP_STATUS_T XllpMfpEnableRdhDrm_List(
                P_XLLP_VUINT32_T    pMfpRegBase,
                P_XLLP_UINT32_T     pMfpOffsetList,
                XLLP_CONTROL_T      enable);
//
// End any processor scope function prototypes
//
/////////////////////////////////////////////////

#endif // __XLLP_MFP_PROC_H__
